import json
from alg import Solution
from gen import generate_test_data, save_test_data

def run_tests():
    # 测试用例参数
    num_tests = 5  # 测试用例数量
    min_n = 4  # 最小的皇后数量
    max_n = 10  # 最大的皇后数量

    # 初始化解决方案对象
    solution = Solution()

    # 测试循环
    for test_id in range(1, num_tests + 1):
        print(f"测试用例 {test_id}：")

        # 生成测试数据
        n = generate_test_data(min_n, max_n)
        print(f"生成的皇后数量 n = {n}")

        # 调用算法函数
        result = solution.solveNQueens(n)

        # 打印结果
        print(f"解的个数：{len(result)}")
        for idx, board in enumerate(result):
            print(f"解 {idx + 1}：")
            for row in board:
                print(row)
            print()
        print("-" * 50)

    # 将最后一个测试用例的输入数据保存到文件
    save_test_data("test_data.json", n)
    print(f"最后一个测试用例的输入数据 n = {n} 已保存到 test_data.json 文件中。")

if __name__ == "__main__":
    print("开始运行测试...")
    run_tests()
    print("测试完成！")